package com.ymttest.database.sharding.db.sharding.model;

import java.math.BigDecimal;
import java.util.Date;

public class PaymentPo {
    /**
     * payment_id BIGINT(19) 必填<br>
     * 主键
     */
    private Long paymentId;

    /**
     * user_id BIGINT(19) 必填<br>
     * 用户Id
     */
    private Long userId;

    /**
     * pay_type INTEGER(10) 必填<br>
     * 支付方式(1-全余额 2-全第三方 3-组合支付)
     */
    private Integer payType;

    /**
     * pay_status INTEGER(10) 必填<br>
     * 支付状态
     */
    private Integer payStatus;

    /**
     * payable_amount DECIMAL(18,2) 必填<br>
     * 应付金额
     */
    private BigDecimal payableAmount;

    /**
     * thirdparty_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 第三方支付金额
     */
    private BigDecimal thirdpartyAmount;

    /**
     * account_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 余额支付金额
     */
    private BigDecimal accountAmount;

    /**
     * real_paid_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 实际扣款金额
     */
    private BigDecimal realPaidAmount;

    /**
     * real_thirdparty_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 第三实际支付金额
     */
    private BigDecimal realThirdpartyAmount;

    /**
     * real_account_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 余额实际支付金额
     */
    private BigDecimal realAccountAmount;

    /**
     * thirdparty_discount DECIMAL(18,2) 必填<br>
     * 第三方优惠金额
     */
    private BigDecimal thirdpartyDiscount;

    /**
     * gateway_payment_id VARCHAR(50)<br>
     * 网关支付Id
     */
    private String gatewayPaymentId;

    /**
     * thirdparty_payment_id VARCHAR(50)<br>
     * 第三方支付Id
     */
    private String thirdpartyPaymentId;

    /**
     * pay_channel VARCHAR(50)<br>
     * 支付渠道
     */
    private String payChannel;

    /**
     * retry_times INTEGER(10) 默认值[0] 必填<br>
     * 执行次数
     */
    private Integer retryTimes;

    /**
     * memo VARCHAR(100)<br>
     * 备注
     */
    private String memo;

    /**
     * gateway_callback_time TIMESTAMP(19)<br>
     * 网关回调时间
     */
    private Date gatewayCallbackTime;

    /**
     * add_time TIMESTAMP(19) 默认值[CURRENT_TIMESTAMP] 必填<br>
     * 新增时间
     */
    private Date addTime;

    /**
     * update_time TIMESTAMP(19) 默认值[CURRENT_TIMESTAMP] 必填<br>
     * 更新时间
     */
    private Date updateTime;

    /**
     * payment_id BIGINT(19) 必填<br>
     * 获得 主键
     */
    public Long getPaymentId() {
        return paymentId;
    }

    /**
     * payment_id BIGINT(19) 必填<br>
     * 设置 主键
     */
    public void setPaymentId(Long paymentId) {
        this.paymentId = paymentId;
    }

    /**
     * user_id BIGINT(19) 必填<br>
     * 获得 用户Id
     */
    public Long getUserId() {
        return userId;
    }

    /**
     * user_id BIGINT(19) 必填<br>
     * 设置 用户Id
     */
    public void setUserId(Long userId) {
        this.userId = userId;
    }

    /**
     * pay_type INTEGER(10) 必填<br>
     * 获得 支付方式(1-全余额 2-全第三方 3-组合支付)
     */
    public Integer getPayType() {
        return payType;
    }

    /**
     * pay_type INTEGER(10) 必填<br>
     * 设置 支付方式(1-全余额 2-全第三方 3-组合支付)
     */
    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    /**
     * pay_status INTEGER(10) 必填<br>
     * 获得 支付状态
     */
    public Integer getPayStatus() {
        return payStatus;
    }

    /**
     * pay_status INTEGER(10) 必填<br>
     * 设置 支付状态
     */
    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    /**
     * payable_amount DECIMAL(18,2) 必填<br>
     * 获得 应付金额
     */
    public BigDecimal getPayableAmount() {
        return payableAmount;
    }

    /**
     * payable_amount DECIMAL(18,2) 必填<br>
     * 设置 应付金额
     */
    public void setPayableAmount(BigDecimal payableAmount) {
        this.payableAmount = payableAmount;
    }

    /**
     * thirdparty_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 获得 第三方支付金额
     */
    public BigDecimal getThirdpartyAmount() {
        return thirdpartyAmount;
    }

    /**
     * thirdparty_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 设置 第三方支付金额
     */
    public void setThirdpartyAmount(BigDecimal thirdpartyAmount) {
        this.thirdpartyAmount = thirdpartyAmount;
    }

    /**
     * account_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 获得 余额支付金额
     */
    public BigDecimal getAccountAmount() {
        return accountAmount;
    }

    /**
     * account_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 设置 余额支付金额
     */
    public void setAccountAmount(BigDecimal accountAmount) {
        this.accountAmount = accountAmount;
    }

    /**
     * real_paid_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 获得 实际扣款金额
     */
    public BigDecimal getRealPaidAmount() {
        return realPaidAmount;
    }

    /**
     * real_paid_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 设置 实际扣款金额
     */
    public void setRealPaidAmount(BigDecimal realPaidAmount) {
        this.realPaidAmount = realPaidAmount;
    }

    /**
     * real_thirdparty_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 获得 第三实际支付金额
     */
    public BigDecimal getRealThirdpartyAmount() {
        return realThirdpartyAmount;
    }

    /**
     * real_thirdparty_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 设置 第三实际支付金额
     */
    public void setRealThirdpartyAmount(BigDecimal realThirdpartyAmount) {
        this.realThirdpartyAmount = realThirdpartyAmount;
    }

    /**
     * real_account_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 获得 余额实际支付金额
     */
    public BigDecimal getRealAccountAmount() {
        return realAccountAmount;
    }

    /**
     * real_account_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 设置 余额实际支付金额
     */
    public void setRealAccountAmount(BigDecimal realAccountAmount) {
        this.realAccountAmount = realAccountAmount;
    }

    /**
     * thirdparty_discount DECIMAL(18,2) 必填<br>
     * 获得 第三方优惠金额
     */
    public BigDecimal getThirdpartyDiscount() {
        return thirdpartyDiscount;
    }

    /**
     * thirdparty_discount DECIMAL(18,2) 必填<br>
     * 设置 第三方优惠金额
     */
    public void setThirdpartyDiscount(BigDecimal thirdpartyDiscount) {
        this.thirdpartyDiscount = thirdpartyDiscount;
    }

    /**
     * gateway_payment_id VARCHAR(50)<br>
     * 获得 网关支付Id
     */
    public String getGatewayPaymentId() {
        return gatewayPaymentId;
    }

    /**
     * gateway_payment_id VARCHAR(50)<br>
     * 设置 网关支付Id
     */
    public void setGatewayPaymentId(String gatewayPaymentId) {
        this.gatewayPaymentId = gatewayPaymentId == null ? null : gatewayPaymentId.trim();
    }

    /**
     * thirdparty_payment_id VARCHAR(50)<br>
     * 获得 第三方支付Id
     */
    public String getThirdpartyPaymentId() {
        return thirdpartyPaymentId;
    }

    /**
     * thirdparty_payment_id VARCHAR(50)<br>
     * 设置 第三方支付Id
     */
    public void setThirdpartyPaymentId(String thirdpartyPaymentId) {
        this.thirdpartyPaymentId = thirdpartyPaymentId == null ? null : thirdpartyPaymentId.trim();
    }

    /**
     * pay_channel VARCHAR(50)<br>
     * 获得 支付渠道
     */
    public String getPayChannel() {
        return payChannel;
    }

    /**
     * pay_channel VARCHAR(50)<br>
     * 设置 支付渠道
     */
    public void setPayChannel(String payChannel) {
        this.payChannel = payChannel == null ? null : payChannel.trim();
    }

    /**
     * retry_times INTEGER(10) 默认值[0] 必填<br>
     * 获得 执行次数
     */
    public Integer getRetryTimes() {
        return retryTimes;
    }

    /**
     * retry_times INTEGER(10) 默认值[0] 必填<br>
     * 设置 执行次数
     */
    public void setRetryTimes(Integer retryTimes) {
        this.retryTimes = retryTimes;
    }

    /**
     * memo VARCHAR(100)<br>
     * 获得 备注
     */
    public String getMemo() {
        return memo;
    }

    /**
     * memo VARCHAR(100)<br>
     * 设置 备注
     */
    public void setMemo(String memo) {
        this.memo = memo == null ? null : memo.trim();
    }

    /**
     * gateway_callback_time TIMESTAMP(19)<br>
     * 获得 网关回调时间
     */
    public Date getGatewayCallbackTime() {
        return gatewayCallbackTime;
    }

    /**
     * gateway_callback_time TIMESTAMP(19)<br>
     * 设置 网关回调时间
     */
    public void setGatewayCallbackTime(Date gatewayCallbackTime) {
        this.gatewayCallbackTime = gatewayCallbackTime;
    }

    /**
     * add_time TIMESTAMP(19) 默认值[CURRENT_TIMESTAMP] 必填<br>
     * 获得 新增时间
     */
    public Date getAddTime() {
        return addTime;
    }

    /**
     * add_time TIMESTAMP(19) 默认值[CURRENT_TIMESTAMP] 必填<br>
     * 设置 新增时间
     */
    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }

    /**
     * update_time TIMESTAMP(19) 默认值[CURRENT_TIMESTAMP] 必填<br>
     * 获得 更新时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * update_time TIMESTAMP(19) 默认值[CURRENT_TIMESTAMP] 必填<br>
     * 设置 更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", paymentId=").append(paymentId);
        sb.append(", userId=").append(userId);
        sb.append(", payType=").append(payType);
        sb.append(", payStatus=").append(payStatus);
        sb.append(", payableAmount=").append(payableAmount);
        sb.append(", thirdpartyAmount=").append(thirdpartyAmount);
        sb.append(", accountAmount=").append(accountAmount);
        sb.append(", realPaidAmount=").append(realPaidAmount);
        sb.append(", realThirdpartyAmount=").append(realThirdpartyAmount);
        sb.append(", realAccountAmount=").append(realAccountAmount);
        sb.append(", thirdpartyDiscount=").append(thirdpartyDiscount);
        sb.append(", gatewayPaymentId=").append(gatewayPaymentId);
        sb.append(", thirdpartyPaymentId=").append(thirdpartyPaymentId);
        sb.append(", payChannel=").append(payChannel);
        sb.append(", retryTimes=").append(retryTimes);
        sb.append(", memo=").append(memo);
        sb.append(", gatewayCallbackTime=").append(gatewayCallbackTime);
        sb.append(", addTime=").append(addTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append("]");
        return sb.toString();
    }
}